Approaches for encoding environmental information

ABSTRACT

Systems, methods, and non-transitory computer-readable media can access a first set of schema-based encodings associated with a first environment, wherein a schema-based encoding provides a structured representation of an environment based on a scenario schema. First information representing scenario information associated with the first environment can be generated based at least in part on the first set of schema-based encodings. One or more attributes for the first environment can be determined based at least in part the first information.

FIELD OF THE INVENTION

The present technology relates to the field of vehicles. Moreparticularly, the present technology relates to systems, apparatus, andmethods for interpreting and applying environmental information.

BACKGROUND

Vehicles are increasingly being equipped with intelligent features thatallow them to monitor their surroundings and make informed decisions onhow to react. Such vehicles, whether autonomously, semi-autonomously, ormanually driven, may be capable of sensing their environment andnavigating with little or no human input as appropriate. The vehicle mayinclude a variety of systems and subsystems for enabling the vehicle todetermine its surroundings so that it may safely navigate to targetdestinations or assist a human driver, if one is present, with doing thesame. As one example, the vehicle may have a computing system (e.g., oneor more central processing units, graphical processing units, memory,storage, etc.) for controlling various operations of the vehicle, suchas driving and navigating. To that end, the computing system may processdata from one or more sensors. For example, a vehicle may have opticalcameras that can recognize hazards, roads, lane markings, trafficsignals, and the like. Data from sensors may be used to, for example,safely drive the vehicle, activate certain safety features (e.g.,automatic braking), and generate alerts about potential hazards.

SUMMARY

Various embodiments of the present technology can include systems,methods, and non-transitory computer readable media configured to accessa first set of schema-based encodings associated with a firstenvironment, wherein a schema-based encoding provides a structuredrepresentation of an environment based on a scenario schema. Firstinformation representing scenario information associated with the firstenvironment can be generated based at least in part on the first set ofschema-based encodings. One or more attributes for the first environmentcan be determined based at least in part on the first information.

In an embodiment, determining the one or more attributes furtherincludes associating a level of difficulty associated with vehiclesnavigating the first environment.

In an embodiment, determining the one or more attributes furtherincludes associating a level of risk associated with vehicles navigatingthe first environment.

In an embodiment, determining the one or more attributes furtherincludes determining routing instructions associated with the firstenvironment, the routing instructions providing instructions for routingvehicles in the first environment; determining a level of similaritybetween the first environment and a second environment; and associatingthe routing instructions with the second environment based at least inpart on a threshold level of similarity between the first and secondenvironments.

In an embodiment, determining the one or more attributes furtherincludes determining vehicle instructions associated with the firstenvironment, the vehicle instructions providing instructions formodifying operations associated with vehicles while navigating the firstenvironment.

In an embodiment, the first environment corresponds to one of: a roadsegment, a geographic location, a geographic region, or a city.

In an embodiment, the first information corresponds to a first histogramrepresenting scenario information associated with the first environment.

In an embodiment, the scenario information includes informationidentifying one or more families of scenarios.

In an embodiment, the scenario information includes informationidentifying one or more individual scenarios.

In an embodiment, a schema-based encoding of an environment for a periodof time identifies one or more agents that were detected by a vehiclewithin the environment during the period of time, respective motioninformation for each of the one or more agents, information indicatingwhether an agent may potentially interact with the vehicle during theperiod of time, and metadata describing the environment.

It should be appreciated that many other features, applications,embodiments, and variations of the disclosed technology will be apparentfrom the accompanying drawings and from the following detaileddescription. Additional and alternative implementations of thestructures, systems, non-transitory computer readable media, and methodsdescribed herein can be employed without departing from the principlesof the disclosed technology.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A-1B illustrate challenges that may be experienced by a vehiclewhen interpreting and applying environmental information andimprovements thereof, according to an embodiment of the presenttechnology.

FIG. 2 illustrates an example environmental information encoding module,according to an embodiment of the present technology.

FIGS. 3A-3I illustrate example diagrams, according to an embodiment ofthe present technology.

FIG. 4 illustrates an example diagram of an approach for interpretingenvironmental information based on schema-based encodings and applyingthose encodings for various applications, according to an embodiment ofthe present technology.

FIGS. 5A-5C illustrate example methods, according to an embodiment ofthe present technology.

FIG. 6 illustrates an example block diagram of a transportationmanagement environment, according to an embodiment of the presenttechnology.

FIG. 7 illustrates an example of a computer system or computing devicethat can be utilized in various scenarios, according to an embodiment ofthe present technology.

The figures depict various embodiments of the disclosed technology forpurposes of illustration only, wherein the figures use like referencenumerals to identify like elements. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated in the figures can be employedwithout departing from the principles of the disclosed technologydescribed herein.

DETAILED DESCRIPTION

Vehicles are increasingly being equipped with intelligent features thatallow them to monitor their surroundings and make informed decisions onhow to react. Such vehicles, whether autonomously, semi-autonomously, ormanually driven, may be capable of sensing their environment andnavigating with little or no human input. For example, a vehicle mayinclude a variety of systems and subsystems for enabling the vehicle todetermine its surroundings so that it may safely navigate to targetdestinations or assist a human driver, if one is present, with doing thesame. As one example, the vehicle may have a computing system forcontrolling various operations of the vehicle, such as driving andnavigating. To that end, the computing system may process data from oneor more sensors. For example, an autonomous vehicle may have opticalcameras for recognizing hazards, roads, lane markings, traffic signals,and the like. Data from sensors may be used to, for example, safelydrive the vehicle, activate certain safety features (e.g., automaticbraking), and generate alerts about potential hazards. In someinstances, such vehicles may be used by a transportation managementsystem to provide ride services or other types of services. Atransportation management system may comprise a fleet of such vehicles.Each vehicle in the fleet may include one or more sensors in a sensorsuite. In general, a vehicle can traverse a geographic location orregion using a number of different routes. Each route can be made up ofone or more road segments. Further, each road segment can be associatedwith a number of scenarios that may be encountered by vehicles whiledriving on those road segments. For instance, a road segment in amountainous terrain may be associated with a “fallen debris” scenario.In another example, a road segment near a school may be associated witha “schoolchildren” scenario. Such scenarios can be taken intoconsideration when routing vehicles to reduce risk and improve safety,for example, by either avoiding road segments that pose a high level ofrisk of encountering certain types of objects (e.g., animals, debris,etc.) or by modifying operation of the vehicles when navigating highrisk road segments (e.g., reducing speed, increasing distance betweenobjects, etc.). Under conventional approaches, scenarios for a givenenvironment can be determined by collecting sensor data for theenvironment, for example, by a fleet of vehicles that include sensorsuites. The sensor data can be analyzed to determine (or predict)scenarios for the environment. For example, the sensor data can beanalyzed to determine features, such as static and dynamic objectspresent within the environment, locations of the static and dynamicobjects within the environment, and contextual information describingthe environment (e.g., time of day, weather conditions, etc.). Theseunstructured features can be interpreted individually or in variouscombinations to recognize predefined scenarios. For instance, a modelmay be trained to interpret features and combinations of features forpurposes of recognizing scenarios. However, the capabilities of suchmodels can be limited due to the high dimensionality of feature datafrom which the models are expected to learn to recognize scenarios. Forexample, FIG. 1A illustrates an example environment 100 in which avehicle 102 is shown navigating a road 104. In general, the vehicle 102may be equipped with one or more sensors that can be used to captureenvironmental information, such as information describing a given roadand objects present on or along the road. For example, in someinstances, the vehicle 102 may be equipped with one or more sensors in asensor suite including optical cameras, LiDAR, radar, infrared cameras,and ultrasound equipment, to name some examples. Such sensors can beused to collect information that can be used by the vehicle 102 tounderstand its environment and objects within the environment. Underconventional approaches, the vehicle 102 can perceive and interpretdetected features and combinations of features, such as static objects(e.g., building, trees, fire hydrant, crosswalk) and dynamic objects(e.g., pedestrians, vehicles, etc.) that were detected by the vehicle102 within the environment 100. The relationships between such featuresand combinations of features thereafter can be processed to determineand log scenarios encountered by the vehicle 102. However, such existingapproaches interpret and apply environmental information in anunstructured manner which may result in undesired consequences, such asinaccurate classification of scenarios and scenario families.Accordingly, other robust approaches are needed to more accurately andreliably interpret and apply environmental information to improvescenario classification and enable other applications.

An improved approach in accordance with the present technology overcomesthe foregoing and other disadvantages associated with conventionalapproaches. In various embodiments, environmental information perceivedby a vehicle can be interpreted and encoded based on a predefinedscenario schema. The predefined scenario schema can include a number ofelements that can be used to describe a given environment (e.g., roadsegment, geographic location, geographic region, city, etc.) andfeatures present within the environment for some period of time. Forexample, the pre-defined scenario schema can include an element torepresent agents that were detected within the environment, an elementto represent motion information associated with agents that weredetected, an element to represent whether an agent that was detected byan ego vehicle may potentially interact with the ego vehicle, and anelement to represent metadata describing the environment. For example,FIG. 1B illustrates a vehicle 152 driving on a road 154. In thisexample, the vehicle 152 can generate one or more schema-based encodingsbased on environmental information perceived by sensors of the vehicle152. For example, a schema-based encoding can identify a group ofpedestrians 156 as agents, indicate that the pedestrians 156 arecrossing the road 154 outside of a crosswalk 158, indicate a potentialinteraction between the vehicle 152 and the pedestrians 156 for whichthe vehicle 152 needs to be responsive, and identify other metadata,such as the presence of a school and speed limit information, forexample. As a result, schema-based encodings of environmentalinformation can provide an accurate and structured representation ofthat environment at some point in time. In various embodiments,schema-based encodings generated for an environment may be applied formyriad applications. For example, the schema-based encodings can helpimprove scenario classification and identification. For instance,conventional approaches to scenario classification and identificationcan be less reliable. Under conventional approaches, when traveling on agiven road segment, a computing system in a vehicle can continuallyprocess data from one or more sensors in the vehicle, for example, toidentify potential hazards such as fallen debris, jaywalkers, slick roadsurface, and the like. Given that an environment being navigated mayinclude a large number of agents and objects, the computing system inthe vehicle must continually process sensor data to identify potentialhazards that need to be addressed by the vehicle. Such processing thusrequires the computing system to rapidly process and interpretunstructured sensor data which may inhibit nuanced scenarioclassification and identification. For example, the computing system mayhave difficulty discerning the difference between a pedestrian who iswalking versus a pedestrian who is running. Such differences can affectwhich potential hazards may be experienced by the vehicle. In anotherexample, the schema-based encodings can allow for more consistent andreliable comparisons to be made between different environments thanwould be possible with unstructured environmental information. Moredetails discussing the disclosed technology are provided below.

FIG. 2 illustrates an example system 200 including an exampleenvironmental information encoding module 202, according to anembodiment of the present technology. As shown in the example of FIG. 2,the environmental information encoding module 202 can include a sensordata module 204, a schema encoding module 206, a scenario determinationmodule 208, and an application module 210. In some instances, theexample system 200 can include at least one data store 220. Theenvironmental information encoding module 202 can be configured tocommunicate and operate with the at least one data store 220. The atleast one data store 220 can be configured to store and maintain varioustypes of data. In some embodiments, some or all of the functionalityperformed by the environmental information encoding module 202 and itssub-modules may be performed by one or more backend computing systems,such as a transportation management system 660 of FIG. 6. In someembodiments, some or all of the functionality performed by theenvironmental information encoding module 202 and its sub-modules may beperformed by one or more computing systems implemented in a vehicle,such as a vehicle 640 of FIG. 6. In some embodiments, some or all datastored in the data store 220 can be stored by the transportationmanagement system 660 of FIG. 6. In some embodiments, some or all datastored in the data store 220 can be stored by the vehicle 640 of FIG. 6.The components (e.g., modules, elements, etc.) shown in this figure andall figures herein are exemplary only, and other implementations mayinclude additional, fewer, integrated, or different components. Somecomponents may not be shown so as not to obscure relevant details.

The sensor data module 204 can be configured to access sensor datacaptured by vehicles. For example, the sensor data may include datacaptured by one or more sensors including optical cameras, LiDAR, radar,infrared cameras, and ultrasound equipment, to name some examples. Thesensor data module 204 can obtain such sensor data, for example, fromthe data store 220 or directly from sensors associated with a vehicle inreal-time (or near real-time). In some instances, the obtained sensordata may have been collected by a fleet of vehicles that offerridesharing services. In some embodiments, the sensor data module 204can determine contextual information for sensor data such as arespective calendar date, day of week, and time of day during which thesensor data was captured. Such contextual information may be obtainedfrom an internal clock of a sensor or a computing device, one or moreexternal computing systems (e.g., Network Time Protocol (NTP) servers),or GPS data, to name some examples. More details describing the types ofsensor data that may be obtained by the sensor data module 204 areprovided below in connection with an array of sensors 644 of FIG. 6.

The schema encoding module 206 can be configured to encode environmentalinformation based on a predefined scenario schema. For example, vehiclesnavigating an environment can capture sensor data that describes theenvironment at various points in time. In this example, the schemaencoding module 206 can analyze the captured sensor data to identifyvarious features describing the environment. The schema encoding module206 can then encode the features based on the predefined scenarioschema. Thus, the predefined scenario schema can be used to representvarious types of environments (e.g., geographic locations, geographicregions, road segments, etc.) in a consistent and structured manner. Insome embodiments, the predefined scenario schema includes a set ofelements that can be used to represent various aspects of a givenenvironment. For example, the scenario schema can include a firstelement to represent agents that were detected by sensors of a vehiclewhile navigating the environment. For example, an agent can be a staticor dynamic object present within the environment. The scenario schemacan include a second element to represent action (or motion) informationassociated with agents that were detected in the environment. Thescenario schema can include a third element to indicate whether adetected agent may potentially interact with the vehicle navigating theenvironment. Further, the scenario schema can include a fourth elementcorresponding to metadata which includes various other features thatdescribe the environment. These elements are provided merely as examplesand, naturally, the predefined scenario schema may be modified toinclude additional or fewer elements depending on the implementation. Invarious embodiments, the schema encoding module 206 can encodeenvironmental information captured by sensors of a vehicle based on thispredefined scenario schema. For example, FIG. 3A illustrates a vehicle301 (“Ego Car”) navigating an environment 300. In this example, thevehicle 301 can capture various sensor data describing the environment300 while driving on a road 302. The sensor data can be captured by thevehicle 301 over some period of time at pre-defined time intervals. Insome embodiments, the schema encoding module 206 can analyze thecaptured sensor data to determine the presence of agents within theenvironment 300, such as a first agent vehicle 303 (“Car 1”), a secondagent vehicle 304 (“Car 2”), a third agent vehicle 305 (“Car 3”), andpedestrians 306. For example, one or more machine learning models can betrained to recognize agents within the environment 300 based on thecaptured sensor data, such as image data capture by optical cameras ofthe vehicle 301, point clouds captured by a LiDAR system in the vehicle301, and radar data captured by a radar system in the vehicle 301, toname some examples. In some embodiments, the schema encoding module 206can also analyze the captured sensor data to determine action (ormotion) information associated with the recognized agents, for example,based on one or more machine learning models that are trained to predictagent motion (or trajectory). In this example, the schema encodingmodule 206 can determine that the first agent vehicle 303 is in theprocess of making an unprotected left turn in front of the vehicle 301,the second agent vehicle 304 and the third agent vehicle 305 are stoppedat traffic signals, and the pedestrians 306 are waiting to cross at acrosswalk that runs across the road 302 on which the vehicle 301 isdriving. In some embodiments, the schema encoding module 206 candetermine action (or motion) information for agents as an offlineprocess. For example, agent behavior (e.g., direction of travel,velocity, distance from other agents, etc.) can be observed and recordedby the vehicle 301. In this example, the observed agent behavior can beused for scenario classification as part of the offline process. In someembodiments, the schema encoding module 206 can determine more detailedaction (or motion) information, such as distances between agents,velocities at which agents are moving, directions of travel associatedwith agents, and agent locations. Such information can be determined foragents relative to the vehicle 301 that is capturing sensor data and foragents relative to other agents. In some embodiments, the accuracy ofagent locations can be enhanced based on a semantic map of theenvironment 300. For example, agent locations can be overlaid on asemantic map of the environment 300 to determine more descriptivelocation details, such as whether an agent is on a sidewalk or roadsurface, whether an agent is in a bicycle lane, and whether an agent isin a first lane or a second lane of a road on which the agent isdriving.

In some embodiments, the schema encoding module 206 can determineinteractions that may potentially occur between the vehicle 301 andagents detected within the environment 300 based on the captured sensordata. For example, an interaction between the vehicle 301 and an agentcan be determined when the vehicle 301 may need to perform some actionin response to the agent. In the example of FIG. 3A, an interactionbetween the vehicle 301 and the first agent vehicle 303 can bedetermined since the first agent vehicle 303 was determined to be makingan unprotected left turn in front of the vehicle 301. Similarly, aninteraction between the vehicle 301 and the pedestrians 306 can bedetermined since the pedestrians 306 may walk across the crosswalk thatintersects the road 302 on which the vehicle 301 is driving. Suchinteractions can help identify scenarios and hazards that maypotentially be experienced by the vehicle 301. In some embodiments, theenvironment 300 of FIG. 3A can be reconstructed from sensor datacollected by the vehicle 301. For instance, the environment 300 can berasterized from sensor data alone without requiring a 360 degreerepresentation of the environment 300. That is, the environment 300 canbe reconstructed by generating a scene with detected agents at theirinferred locations within the environment 300. For example, the scenecan be generated from a single camera capture over time as the vehicle301 navigates the environment 300 (e.g., approaches an intersection). Inthis example, agent positions can be inferred based on collectedinformation.

In some embodiments, the schema encoding module 206 can encode variousfeatures describing the agents and environment 300 as metadata. Forexample, the schema encoding module 206 can encode map features asmetadata, such as road segment length (e.g., a start point and an endpoint that defines a road segment), road segment quality (e.g., presenceof potholes, whether the road segment is paved or unpaved, etc.),roadway type (e.g., freeway, highway, expressway, local street, ruralroad, etc.), information describing traffic lanes in the road segment(e.g., speed limits, number of available lanes, number of closed lanes,locations of any intersections, merging lanes, traffic signals andstates, street signs, curbs, etc.), the presence of any bike lanes, andthe presence of any crosswalks, to name some examples. Further, theencoded metadata can indicate whether the road segment is within aspecific zone (e.g., residential zone, school zone, business zone,mixed-use zone, high density zone, rural zone, etc.) as determined, forexample, based on detected street signs and location data. In yetanother example, the schema encoding module 206 can encode contextualinformation for the environment 300 as metadata, including a calendardate, day of week, and time of day during which the sensor data wascaptured. Further, the schema encoding module 206 can encode weatherconditions (e.g., clear skies, overcast, fog, rain, sleet, snow, etc.)encountered by the vehicle 301 while navigating the environment 300 asmetadata. In some embodiments, such contextual features may bedetermined from external data sources (e.g., weather data, etc.). Manyvariations are possible. In various embodiments, the schema encodingmodule 206 can encode information describing the environment 300 basedon the predefined scenario schema. In some embodiments, a schema-basedencoding of the environment 300 based on the predefined scenario schemacan provide a structured representation of features associated with theenvironment 300 during some period of time. In the example of FIG. 3A,the schema encoding module 206 can generate a schema-based encoding 307that describes the environment 300 based on the predefined scenarioschema. As shown, the encoding 307 provides a structured representationof the agents that were detected by the vehicle 301 while navigating theenvironment 300, respective actions associated with those agents,potential interactions between the vehicle 301 and detected agents, andmetadata associated with the environment 300. In some embodiments, theencoding 307 can include information describing the vehicle 301 as anego car to maintain perspective information. Scenario schemas need notbe predefined. For example, in some embodiments, a scenario schema canbe generated on-the-fly. In such embodiments, the scenario schema can bemachine learned without human intervention, for example, by training amachine learning model or performing n-dimensional nearest neighborclustering to learn scenario groupings. In another example, FIG. 3Bshows vehicle 309 driving on a road 310 within an environment 308. Thevehicle 309 can capture various sensor data while driving on the road310. The captured sensor data can describe features associated with theenvironment 308, such as the presence of a pedestrian 311 crossing theroad 310 at a crosswalk 312, a pedestrian crossing sign 313, and a 25mph speed limit sign 314. In this example, the scenario encoding module206 can generate a structured representation of the environment 308 as aschema-based encoding 315. For example, the schema based encoding 315can identify the pedestrian 311 as an agent. The encoding 315 can alsoinclude information describing respective agent actions, agentinteractions, and metadata. In yet another example, FIG. 3C showsvehicle 317 driving on a road 318 within an environment 316. The vehicle317 can capture various sensor data while driving on the road 318. Thecaptured sensor data can describe features associated with theenvironment 316, such as the presence of a 55 mph speed limit sign 319,an agent vehicle 320, and road debris 321. In some embodiments,environmental information for a region (e.g., road signs, speed limit,etc.) can be obtained from a semantic map of the region. In thisexample, the scenario encoding module 206 can generate a structuredrepresentation of the environment 316 as a schema-based encoding 322.For example, the schema based encoding 322 can identify the agentvehicle 320 and road debris 321 as agents. The encoding 322 can alsoinclude information describing respective agent actions, agentinteractions, and metadata. The examples above illustrate one examplescenario schema that includes an agent element, action element,interaction element, and metadata element. For example, the encoding 322identifies the road debris 321 as a static object with which the vehicle317 may potentially interact. Further, the encoding 322 identifies theagent vehicle 320 as “Car 1” driving northwest on the road 318 andindicates that no interaction is expected to occur between the agentvehicle 320 and the vehicle 317. Again, these elements are providedmerely as examples and, naturally, the scenario schema may be modifiedto include additional or fewer elements depending on the implementation.In some embodiments, the schema encoding module 206 can also beconfigured to determine time-based representations of environmentalinformation. For example, FIG. 3D illustrates a time-basedrepresentation 324 of the environment 300, which was described above inreference to FIG. 3A. The time-based representation 324 can identifyagents that were detected over some period of time (e.g., a timespanning 13:03 to 13:10). The time-based representation 324 can alsoprovide action (or motion) information associated with these agents atdifferent points over the period time. For example, in FIG. 3D, thetime-based representation 324 indicates that the first agent vehicle 303(“Car 1”) was driving south between time 13:03 and 13:05, making a leftturn between time 13:05 and 13:08, and driving east between time 13:08and 13:10. In some embodiments, the schema encoding module 206 canassociate time-based representations of a given environment withschema-based encodings of the environment. For example, the schemaencoding module 206 can associate the time-based representation 324 ofthe environment 300 with the schema-based encoding 307 of theenvironment 300, as represented in FIG. 3A. Many variations arepossible.

The scenario determination module 208 can be configured to determinescenario information (e.g., scenarios, scenario families, scenariosub-families, etc.) associated with environments (e.g., a road segment,a geographic location, a geographic region, city, etc.) based onschema-based encodings of those environments. The schema-based encodingsmay be determined based on sensor data captured by a vehicle, such as avehicle 640 of FIG. 6, or a fleet of such vehicles while navigatingthose environments. For example, the scenario determination module 208can obtain a schema-based encoding 327 that was generated for anenvironment for some period of time, as illustrated in an examplediagram 326 of FIG. 3E. In some embodiments, the scenario determinationmodule 208 can determine scenario information associated with theenvironment during the period of time based on the schema-based encoding327. For example, the scenario determination module 208 can provide theschema-based encoding 327 of the environment as input to a machinelearning model 328. The machine learning model 328 can evaluate theschema-based encoding 327 to determine scenario information 329associated with the environment during the period of time. For example,the machine learning model 328 can be trained to determine scenariofamilies, scenario sub-families, and individual scenarios based upon anevaluation of the schema-based encoding 327. For example, the scenariofamilies, scenario sub-families, and individual scenarios which themachine learning model 328 is trained to recognize can be organized as amulti-level or tiered taxonomy reflecting varying degrees of generalityand specificity. An example taxonomy may include a set of pre-definedscenario families and respective scenarios classified within each of thescenario families. For example, a scenario family corresponding tointeractions involving pedestrians may include a first scenariocorresponding to jaywalkers and a second scenario corresponding topedestrians jogging along a road. In some embodiments, the scenariodetermination module 208 can train the machine learning model 328 basedon labeled schema-based encodings 330 that were generated for variousenvironments. In some embodiments, the schema-based encodings 330 can bemanually labeled by humans. For example, a schema-based encoding of anenvironment can be labeled manually to identify scenarios and scenariofamilies associated with the environment. In some embodiments, a portionof the schema-based encodings 330 may be labeled manually and thisportion of schema-based encodings 330 can be used to automatically labelother unlabeled schema-based encodings. For example, the scenariodetermination module 208 can apply generally known techniques to clusterschema-based encodings (or embeddings of schema-based encodings) basedon similarity within some high-dimensional space, as illustrated in theexample of FIG. 3F. The clusters of schema-based encodings can be usedto determine various scenario information for different environments.For example, FIG. 3F shows a diagram 332 of schema-based encodingsprojected in high-dimensional space. For example, in some embodiments,each schema-based encoding can be represented as a feature vectorincluding features that were included in the schema-based encoding(e.g., agents, actions, interactions, metadata, etc.). These featurevectors can be plotted and clustered in high-dimensional space based onsimilarity to identify scenario families and sub-families. In theexample of FIG. 3F, a labeled schema-based encoding 333 is included in afirst cluster 334 of schema-based encodings. In this example, thescenario determination module 208 can classify unlabeled schema-basedencodings 335 that were included in the first cluster 334 as belongingto the same scenario family (or scenario) as the labeled schema-basedencoding 333. For example, in FIG. 3F, a determination may be made thatschema-based encodings included in the first cluster 334 all correspondto a family of scenarios that involve some interaction between an egovehicle and pedestrians. In another example, a determination may be madethat schema-based encodings included in a second cluster 336 allcorrespond to a family of scenarios that involve some interactionbetween an ego vehicle and other vehicles. In yet another example, adetermination may be made that schema-based encodings included in athird cluster 337 all correspond to a family of scenarios that involvesome interaction between an ego vehicle and animals. Many variations arepossible. For example, in some embodiments, the scenario determinationmodule 208 can cluster unlabeled schema-based encodings associated withvarious environments based on generally known techniques. In someembodiments, these clusters can be labeled manually. For example, ahuman may evaluate and label a cluster of schema-based encodings asrepresenting a particular family of scenarios. In some embodiments, thescenario determination module 208 can refine these clusters at varyinglevels of granularity to determine scenario sub-families and individualscenarios. For example, pedestrians walking may be involved in differentsub-scenarios depending on various factors (e.g., their speed of travel,their location in relation to an ego vehicle, their distance from asidewalk, etc.). The refinement of clusters can help discern betweenscenario sub-families and individual scenarios. The schema-basedencodings that correspond to such refined clusters can be used to trainmachine learning models to predict scenario information at variouslevels of granularity. Many variations are possible. In someembodiments, the scenario determination module 208 can generateinformation (e.g., histograms) representing scenario information forvarious environments (e.g., a road segment, a geographic location, ageographic region, a city, etc.). For example, the scenariodetermination module 208 can generate a histogram 342 that representsrespective frequencies of families of scenarios that were experienced byvehicles while navigating an environment, as illustrated in the exampleof FIG. 3G. In this example, the histogram 342 can be evaluated todetermine exposure rates for different families of scenarios for theenvironment. In some embodiments, the scenario determination module 208can also generate histograms that represent respective frequencies ofindividual scenarios that were experienced by vehicles while navigatingan environment. In such embodiments, the histograms can be evaluated todetermine exposure rates for different individual scenarios for theenvironment. Depending on the implementation, the term “environment” canencompass an area as small as an intersection or road segment and aslarge as a region, city, or state, to name some examples.

The application module 210 can be configured to use schema-basedencodings and information derived from such encodings for variousapplications. For example, in some embodiments, histograms representingfrequencies of families of scenarios (or individual scenarios)associated with a given environment (e.g., road segment, geographiclocation, geographic region, city, etc.) can be used to make variouscomparisons between different environments, as illustrated in theexample of FIG. 3H. For example, FIG. 3H illustrates a first histogram344 representing frequencies of scenario families associated with afirst environment and second histogram 346 representing frequencies ofscenario families associated with a second environment. In variousembodiments, the application module 210 can determine a level ofsimilarity between the first and second environments based on acomparison of the first histogram 344 and the second histogram 346. Forexample, the first histogram 344 may represent families of scenariosassociated with a city Palo Alto, Calif. and the second histogram 346may represent families of scenarios associated with a different cityPortland, Oreg. In this example, a threshold similarity between thefirst histogram 344 and the second histogram 346 can indicate thatvehicles navigating the city of Portland face challenges that aresimilar to those faced by vehicles navigating the city of Palo Alto.Many variations are possible. For example, in some embodiments, eachfamily of scenarios associated with the first histogram 344 can beassociated with a difficulty profile representing a level of difficultywith which a vehicle is expected to autonomously or semi-autonomouslyrespond to the family of scenarios (e.g., a difficulty profile). In suchembodiments, a threshold similarity between the first histogram 344 andthe second histogram 346 can indicate that vehicles navigating the firstand second environments encounter a similar level of difficulty. In someembodiments, each family of scenarios associated with the firsthistogram 344 can be associated with a risk profile representing a levelof risk posed by the family of scenarios. In such embodiments, athreshold similarity between the first histogram 344 and the secondhistogram 346 can indicate that vehicles navigating the first and secondenvironments encounter a similar level of risk. In some embodiments, theapplication module 210 can route vehicles navigating an environmentbased on a level of difficulty or risk associated with the environment.For example, FIG. 3I illustrates a map 350 of a geographic region. Themap 350 can associate various portions of the geographic region withscenario information based on the types of scenarios that wereencountered by vehicles while navigating those portions of the map 350.For example, the map 350 associates a first histogram 352 of scenarioswith a first road segment 354 and a second histogram 356 of scenarioswith a second road segment 358. In some embodiments, the map 350 canassociate respective difficulty and risk profiles with the first roadsegment 354 and the second road segment 358. In the example of FIG. 3I,the first road segment 354 may be associated with a high level of riskto pedestrians while the second road segment 358 may be associated witha lower level of risk to pedestrians. In this example, a vehicle drivingon the first road segment 354 may be re-routed to use the second roadsegment 358 to reduce risk to pedestrians. Many variations are possible.In some embodiments, difficulty and risk profiles can be used as a basisfor modifying vehicle operation (or behavior). For example, the firstroad segment 354 and the second road segment 358 may be associated withsimilar levels of risk to pedestrians. In this example, a vehicledriving on the first road segment 354 may be instructed to continuedriving on the first road segment 354 while modifying its operationbased on a level of difficulty or risk associated with the first roadsegment 354. For example, the vehicle may be instructed to increase ordecrease its speed, change its direction of travel, change lanes,activate hazard lights, or activate fog lights, to name some examples.Again, many variations are possible.

FIG. 4 illustrates an example diagram 400 of an approach for encodingand utilizing schema-based encodings based on functionality of theenvironmental information encoding module 202, according to anembodiment of the present technology. In this example, the approach canbe implemented by a vehicle 402. The vehicle 402 can be, for example,the vehicle 640 as shown in FIG. 6. For example, at block 404, sensordata captured by sensors in the vehicle 402 while navigating anenvironment can be obtained. At block 406, the sensor data can be usedto generate schema-based encodings for a given environment (e.g., roadsegment, geographic location, geographic region, city, etc.), asdescribed above. At block 408, the schema-based encodings can be used todetermine scenario information for the environment, as described above.In various embodiments, the scenario information can be accessed by atransportation management system 412 (e.g., the transportationmanagement system 660 of FIG. 6). For example, the scenario informationcan be stored in a scenario database 410. In various embodiments, thescenario information can be used by the transportation management system412 for various applications 414, such evaluating different environmentsbased on a level of difficulty or risk, routing vehicles based on alevel of difficulty or risk associated with environments, and modifyingvehicle operation based on a level of difficulty or risk associated withenvironments, as described above. Many variations are possible.

FIG. 5A illustrates an example method 500, according to an embodiment ofthe present technology. At block 502, sensor data captured by at leastone sensor of a vehicle while navigating an environment over a period oftime can be determined. At block 504, information describing one or moreagents associated with the environment during the period of time can bedetermined based at least in part on the captured sensor data. At block506, a schema-based encoding describing the environment during theperiod of time can be generated based at least in part on the determinedinformation and a scenario schema, wherein the schema-based encodingprovides a structured representation of the environment during theperiod of time.

FIG. 5B illustrates an example method 520, according to an embodiment ofthe present technology. At block 522, a plurality of schema-basedencodings providing a structured representation of an environmentcaptured by one or more sensors of vehicles traveling through theenvironment can be accessed. At block 524, the plurality of schema-basedencodings can be clustered into one or more clusters of schema-basedencodings. At block 526, at least one scenario associated with theenvironment can be determined based at least in part on the one or moreclusters of schema-based encodings.

FIG. 5C illustrates an example method 540, according to an embodiment ofthe present technology. At block 542, a first set of schema-basedencodings associated with a first environment, wherein a schema-basedencoding provides a structured representation of an environment based ona scenario schema. At block 544, first information representing scenarioinformation associated with the first environment can be generated basedat least in part on the first set of schema-based encodings. At block546, one or more attributes for the first environment can be determined.

FIG. 6 illustrates an example block diagram of a transportationmanagement environment for matching ride requestors with vehicles. Inparticular embodiments, the environment may include various computingentities, such as a user computing device 630 of a user 601 (e.g., aride provider or requestor), a transportation management system 660, avehicle 640, and one or more third-party systems 670. The vehicle 640can be autonomous, semi-autonomous, or manually drivable. The computingentities may be communicatively connected over any suitable network 610.As an example and not by way of limitation, one or more portions ofnetwork 610 may include an ad hoc network, an extranet, a virtualprivate network (VPN), a local area network (LAN), a wireless LAN(WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitanarea network (MAN), a portion of the Internet, a portion of PublicSwitched Telephone Network (PSTN), a cellular network, or a combinationof any of the above. In particular embodiments, any suitable networkarrangement and protocol enabling the computing entities to communicatewith each other may be used. Although FIG. 6 illustrates a single userdevice 630, a single transportation management system 660, a singlevehicle 640, a plurality of third-party systems 670, and a singlenetwork 610, this disclosure contemplates any suitable number of each ofthese entities. As an example and not by way of limitation, the networkenvironment may include multiple users 601, user devices 630,transportation management systems 660, vehicles 640, third-party systems670, and networks 610. In some embodiments, some or all modules of thetraffic light interpretation module 202 may be implemented by one ormore computing systems of the transportation management system 660. Insome embodiments, some or all modules of the traffic lightinterpretation module 202 may be implemented by one or more computingsystems in the vehicle 640.

The user device 630, transportation management system 660, vehicle 640,and third-party system 670 may be communicatively connected orco-located with each other in whole or in part. These computing entitiesmay communicate via different transmission technologies and networktypes. For example, the user device 630 and the vehicle 640 maycommunicate with each other via a cable or short-range wirelesscommunication (e.g., Bluetooth, NFC, WI-FI, etc.), and together they maybe connected to the Internet via a cellular network that is accessibleto either one of the devices (e.g., the user device 630 may be asmartphone with LTE connection). The transportation management system660 and third-party system 670, on the other hand, may be connected tothe Internet via their respective LAN/WLAN networks and Internet ServiceProviders (ISP). FIG. 6 illustrates transmission links 650 that connectuser device 630, vehicle 640, transportation management system 660, andthird-party system 670 to communication network 610. This disclosurecontemplates any suitable transmission links 650, including, e.g., wireconnections (e.g., USB, Lightning, Digital Subscriber Line (DSL) or DataOver Cable Service Interface Specification (DOCSIS)), wirelessconnections (e.g., WI-FI, WiMAX, cellular, satellite, NFC, Bluetooth),optical connections (e.g., Synchronous Optical Networking (SONET),Synchronous Digital Hierarchy (SDH)), any other wireless communicationtechnologies, and any combination thereof. In particular embodiments,one or more links 650 may connect to one or more networks 610, which mayinclude in part, e.g., ad-hoc network, the Intranet, extranet, VPN, LAN,WLAN, WAN, WWAN, MAN, PSTN, a cellular network, a satellite network, orany combination thereof. The computing entities need not necessarily usethe same type of transmission link 650. For example, the user device 630may communicate with the transportation management system via a cellularnetwork and the Internet, but communicate with the vehicle 640 viaBluetooth or a physical wire connection.

In particular embodiments, the transportation management system 660 mayfulfill ride requests for one or more users 601 by dispatching suitablevehicles. The transportation management system 660 may receive anynumber of ride requests from any number of ride requestors 601. Inparticular embodiments, a ride request from a ride requestor 601 mayinclude an identifier that identifies the ride requestor in the system660. The transportation management system 660 may use the identifier toaccess and store the ride requestor's 601 information, in accordancewith the requestor's 601 privacy settings. The ride requestor's 601information may be stored in one or more data stores (e.g., a relationaldatabase system) associated with and accessible to the transportationmanagement system 660. In particular embodiments, ride requestorinformation may include profile information about a particular riderequestor 601. In particular embodiments, the ride requestor 601 may beassociated with one or more categories or types, through which the riderequestor 601 may be associated with aggregate information about certainride requestors of those categories or types. Ride information mayinclude, for example, preferred pick-up and drop-off locations, drivingpreferences (e.g., safety comfort level, preferred speed, rates ofacceleration/deceleration, safety distance from other vehicles whentravelling at various speeds, route, etc.), entertainment preferencesand settings (e.g., preferred music genre or playlist, audio volume,display brightness, etc.), temperature settings, whether conversationwith the driver is welcomed, frequent destinations, historical ridingpatterns (e.g., time of day of travel, starting and ending locations,etc.), preferred language, age, gender, or any other suitableinformation. In particular embodiments, the transportation managementsystem 660 may classify a user 601 based on known information about theuser 601 (e.g., using machine-learning classifiers), and use theclassification to retrieve relevant aggregate information associatedwith that class. For example, the system 660 may classify a user 601 asa young adult and retrieve relevant aggregate information associatedwith young adults, such as the type of music generally preferred byyoung adults.

Transportation management system 660 may also store and access rideinformation. Ride information may include locations related to the ride,traffic data, route options, optimal pick-up or drop-off locations forthe ride, or any other suitable information associated with a ride. Asan example and not by way of limitation, when the transportationmanagement system 660 receives a request to travel from San FranciscoInternational Airport (SFO) to Palo Alto, Calif., the system 660 mayaccess or generate any relevant ride information for this particularride request. The ride information may include, for example, preferredpick-up locations at SFO; alternate pick-up locations in the event thata pick-up location is incompatible with the ride requestor (e.g., theride requestor may be disabled and cannot access the pick-up location)or the pick-up location is otherwise unavailable due to construction,traffic congestion, changes in pick-up/drop-off rules, or any otherreason; one or more routes to navigate from SFO to Palo Alto; preferredoff-ramps for a type of user; or any other suitable informationassociated with the ride. In particular embodiments, portions of theride information may be based on historical data associated withhistorical rides facilitated by the system 660. For example, historicaldata may include aggregate information generated based on past rideinformation, which may include any ride information described herein andtelemetry data collected by sensors in vehicles and user devices.Historical data may be associated with a particular user (e.g., thatparticular user's preferences, common routes, etc.), a category/class ofusers (e.g., based on demographics), and all users of the system 660.For example, historical data specific to a single user may includeinformation about past rides that particular user has taken, includingthe locations at which the user is picked up and dropped off, music theuser likes to listen to, traffic information associated with the rides,time of the day the user most often rides, and any other suitableinformation specific to the user. As another example, historical dataassociated with a category/class of users may include, e.g., common orpopular ride preferences of users in that category/class, such asteenagers preferring pop music, ride requestors who frequently commuteto the financial district may prefer to listen to the news, etc. As yetanother example, historical data associated with all users may includegeneral usage trends, such as traffic and ride patterns. Usinghistorical data, the system 660 in particular embodiments may predictand provide ride suggestions in response to a ride request. Inparticular embodiments, the system 660 may use machine-learning, such asneural networks, regression algorithms, instance-based algorithms (e.g.,k-Nearest Neighbor), decision-tree algorithms, Bayesian algorithms,clustering algorithms, association-rule-learning algorithms,deep-learning algorithms, dimensionality-reduction algorithms, ensemblealgorithms, and any other suitable machine-learning algorithms known topersons of ordinary skill in the art. The machine-learning models may betrained using any suitable training algorithm, including supervisedlearning based on labeled training data, unsupervised learning based onunlabeled training data, and semi-supervised learning based on a mixtureof labeled and unlabeled training data.

In particular embodiments, transportation management system 660 mayinclude one or more server computers. Each server may be a unitaryserver or a distributed server spanning multiple computers or multipledatacenters. The servers may be of various types, such as, for exampleand without limitation, web server, news server, mail server, messageserver, advertising server, file server, application server, exchangeserver, database server, proxy server, another server suitable forperforming functions or processes described herein, or any combinationthereof. In particular embodiments, each server may include hardware,software, or embedded logic components or a combination of two or moresuch components for carrying out the appropriate functionalitiesimplemented or supported by the server. In particular embodiments,transportation management system 660 may include one or more datastores. The data stores may be used to store various types ofinformation, such as ride information, ride requestor information, rideprovider information, historical information, third-party information,or any other suitable type of information. In particular embodiments,the information stored in the data stores may be organized according tospecific data structures. In particular embodiments, each data store maybe a relational, columnar, correlation, or any other suitable type ofdatabase system. Although this disclosure describes or illustratesparticular types of databases, this disclosure contemplates any suitabletypes of databases. Particular embodiments may provide interfaces thatenable a user device 630 (which may belong to a ride requestor orprovider), a transportation management system 660, vehicle system 640,or a third-party system 670 to process, transform, manage, retrieve,modify, add, or delete the information stored in the data store.

In particular embodiments, transportation management system 660 mayinclude an authorization server (or any other suitable component(s))that allows users 601 to opt-in to or opt-out of having theirinformation and actions logged, recorded, or sensed by transportationmanagement system 660 or shared with other systems (e.g., third-partysystems 670). In particular embodiments, a user 601 may opt-in oropt-out by setting appropriate privacy settings. A privacy setting of auser may determine what information associated with the user may belogged, how information associated with the user may be logged, wheninformation associated with the user may be logged, who may loginformation associated with the user, whom information associated withthe user may be shared with, and for what purposes informationassociated with the user may be logged or shared. Authorization serversmay be used to enforce one or more privacy settings of the users 601 oftransportation management system 660 through blocking, data hashing,anonymization, or other suitable techniques as appropriate.

In particular embodiments, third-party system 670 may be anetwork-addressable computing system that may provide HD maps or hostGPS maps, customer reviews, music or content, weather information, orany other suitable type of information. Third-party system 670 maygenerate, store, receive, and send relevant data, such as, for example,map data, customer review data from a customer review website, weatherdata, or any other suitable type of data. Third-party system 670 may beaccessed by the other computing entities of the network environmenteither directly or via network 610. For example, user device 630 mayaccess the third-party system 670 via network 610, or via transportationmanagement system 660. In the latter case, if credentials are requiredto access the third-party system 670, the user 601 may provide suchinformation to the transportation management system 660, which may serveas a proxy for accessing content from the third-party system 670.

In particular embodiments, user device 630 may be a mobile computingdevice such as a smartphone, tablet computer, or laptop computer. Userdevice 630 may include one or more processors (e.g., CPU, GPU), memory,and storage. An operating system and applications may be installed onthe user device 630, such as, e.g., a transportation applicationassociated with the transportation management system 660, applicationsassociated with third-party systems 670, and applications associatedwith the operating system. User device 630 may include functionality fordetermining its location, direction, or orientation, based on integratedsensors such as GPS, compass, gyroscope, or accelerometer. User device630 may also include wireless transceivers for wireless communicationand may support wireless communication protocols such as Bluetooth,near-field communication (NFC), infrared (IR) communication, WI-FI, and2G/3G/4G/LTE mobile communication standard. User device 630 may alsoinclude one or more cameras, scanners, touchscreens, microphones,speakers, and any other suitable input-output devices.

In particular embodiments, the vehicle 640 may be equipped with an arrayof sensors 644, a navigation system 646, and a ride-service computingdevice 648. In particular embodiments, a fleet of vehicles 640 may bemanaged by the transportation management system 660. The fleet ofvehicles 640, in whole or in part, may be owned by the entity associatedwith the transportation management system 660, or they may be owned by athird-party entity relative to the transportation management system 660.In either case, the transportation management system 660 may control theoperations of the vehicles 640, including, e.g., dispatching selectvehicles 640 to fulfill ride requests, instructing the vehicles 640 toperform select operations (e.g., head to a service center orcharging/fueling station, pull over, stop immediately, self-diagnose,lock/unlock compartments, change music station, change temperature, andany other suitable operations), and instructing the vehicles 640 toenter select operation modes (e.g., operate normally, drive at a reducedspeed, drive under the command of human operators, and any othersuitable operational modes).

In particular embodiments, the vehicles 640 may receive data from andtransmit data to the transportation management system 660 and thethird-party system 670. Examples of received data may include, e.g.,instructions, new software or software updates, maps, 3D models, trainedor untrained machine-learning models, location information (e.g.,location of the ride requestor, the vehicle 640 itself, other vehicles640, and target destinations such as service centers), navigationinformation, traffic information, weather information, entertainmentcontent (e.g., music, video, and news) ride requestor information, rideinformation, and any other suitable information. Examples of datatransmitted from the vehicle 640 may include, e.g., telemetry and sensordata, determinations/decisions based on such data, vehicle condition orstate (e.g., battery/fuel level, tire and brake conditions, sensorcondition, speed, odometer, etc.), location, navigation data, passengerinputs (e.g., through a user interface in the vehicle 640, passengersmay send/receive data to the transportation management system 660 andthird-party system 670), and any other suitable data.

In particular embodiments, vehicles 640 may also communicate with eachother, including those managed and not managed by the transportationmanagement system 660. For example, one vehicle 640 may communicate withanother vehicle data regarding their respective location, condition,status, sensor reading, and any other suitable information. Inparticular embodiments, vehicle-to-vehicle communication may take placeover direct short-range wireless connection (e.g., WI-FI, Bluetooth,NFC) or over a network (e.g., the Internet or via the transportationmanagement system 660 or third-party system 670), or both.

In particular embodiments, a vehicle 640 may obtain and processsensor/telemetry data. Such data may be captured by any suitablesensors. For example, the vehicle 640 may have a Light Detection andRanging (LiDAR) sensor array of multiple LiDAR transceivers that areconfigured to rotate 360°, emitting pulsed laser light and measuring thereflected light from objects surrounding vehicle 640. In particularembodiments, LiDAR transmitting signals may be steered by use of a gatedlight valve, which may be a MEMs device that directs a light beam usingthe principle of light diffraction. Such a device may not use a gimbaledmirror to steer light beams in 360° around the vehicle. Rather, thegated light valve may direct the light beam into one of several opticalfibers, which may be arranged such that the light beam may be directedto many discrete positions around the vehicle. Thus, data may becaptured in 360° around the vehicle, but no rotating parts may benecessary. A LiDAR is an effective sensor for measuring distances totargets, and as such may be used to generate a three-dimensional (3D)model of the external environment of the vehicle 640. As an example andnot by way of limitation, the 3D model may represent the externalenvironment including objects such as other cars, curbs, debris,objects, and pedestrians up to a maximum range of the sensor arrangement(e.g., 50, 100, or 200 meters). As another example, the vehicle 640 mayhave optical cameras pointing in different directions. The cameras maybe used for, e.g., recognizing roads, lane markings, street signs,traffic lights, police, other vehicles, and any other visible objects ofinterest. To enable the vehicle 640 to “see” at night, infrared camerasmay be installed. In particular embodiments, the vehicle may be equippedwith stereo vision for, e.g., spotting hazards such as pedestrians ortree branches on the road. As another example, the vehicle 640 may haveradars for, e.g., detecting other vehicles and hazards afar.Furthermore, the vehicle 640 may have ultrasound equipment for, e.g.,parking and obstacle detection. In addition to sensors enabling thevehicle 640 to detect, measure, and understand the external world aroundit, the vehicle 640 may further be equipped with sensors for detectingand self-diagnosing the vehicle's own state and condition. For example,the vehicle 640 may have wheel sensors for, e.g., measuring velocity;global positioning system (GPS) for, e.g., determining the vehicle'scurrent geolocation; and inertial measurement units, accelerometers,gyroscopes, and odometer systems for movement or motion detection. Whilethe description of these sensors provides particular examples ofutility, one of ordinary skill in the art would appreciate that theutilities of the sensors are not limited to those examples. Further,while an example of a utility may be described with respect to aparticular type of sensor, it should be appreciated that the utility maybe achieved using any combination of sensors. For example, the vehicle640 may build a 3D model of its surrounding based on data from itsLiDAR, radar, sonar, and cameras, along with a pre-generated mapobtained from the transportation management system 660 or thethird-party system 670. Although sensors 644 appear in a particularlocation on the vehicle 640 in FIG. 6, sensors 644 may be located in anysuitable location in or on the vehicle 640. Example locations forsensors include the front and rear bumpers, the doors, the frontwindshield, on the side panel, or any other suitable location.

In particular embodiments, the vehicle 640 may be equipped with aprocessing unit (e.g., one or more CPUs and GPUs), memory, and storage.The vehicle 640 may thus be equipped to perform a variety ofcomputational and processing tasks, including processing the sensordata, extracting useful information, and operating accordingly. Forexample, based on images captured by its cameras and a machine-visionmodel, the vehicle 640 may identify particular types of objects capturedby the images, such as pedestrians, other vehicles, lanes, curbs, andany other objects of interest.

In particular embodiments, the vehicle 640 may have a navigation system646 responsible for safely navigating the vehicle 640. In particularembodiments, the navigation system 646 may take as input any type ofsensor data from, e.g., a Global Positioning System (GPS) module,inertial measurement unit (IMU), LiDAR sensors, optical cameras, radiofrequency (RF) transceivers, or any other suitable telemetry or sensorymechanisms. The navigation system 646 may also utilize, e.g., map data,traffic data, accident reports, weather reports, instructions, targetdestinations, and any other suitable information to determine navigationroutes and particular driving operations (e.g., slowing down, speedingup, stopping, swerving, etc.). In particular embodiments, the navigationsystem 646 may use its determinations to control the vehicle 640 tooperate in prescribed manners and to guide the vehicle 640 to itsdestinations without colliding into other objects. Although the physicalembodiment of the navigation system 646 (e.g., the processing unit)appears in a particular location on the vehicle 640 in FIG. 6,navigation system 646 may be located in any suitable location in or onthe vehicle 640. Example locations for navigation system 646 includeinside the cabin or passenger compartment of the vehicle 640, near theengine/battery, near the front seats, rear seats, or in any othersuitable location.

In particular embodiments, the vehicle 640 may be equipped with aride-service computing device 648, which may be a tablet or any othersuitable device installed by transportation management system 660 toallow the user to interact with the vehicle 640, transportationmanagement system 660, other users 601, or third-party systems 670. Inparticular embodiments, installation of ride-service computing device648 may be accomplished by placing the ride-service computing device 648inside the vehicle 640, and configuring it to communicate with thevehicle 640 via a wired or wireless connection (e.g., via Bluetooth).Although FIG. 6 illustrates a single ride-service computing device 648at a particular location in the vehicle 640, the vehicle 640 may includeseveral ride-service computing devices 648 in several differentlocations within the vehicle. As an example and not by way oflimitation, the vehicle 640 may include four ride-service computingdevices 648 located in the following places: one in front of thefront-left passenger seat (e.g., driver's seat in traditional U.S.automobiles), one in front of the front-right passenger seat, one infront of each of the rear-left and rear-right passenger seats. Inparticular embodiments, ride-service computing device 648 may bedetachable from any component of the vehicle 640. This may allow usersto handle ride-service computing device 648 in a manner consistent withother tablet computing devices. As an example and not by way oflimitation, a user may move ride-service computing device 648 to anylocation in the cabin or passenger compartment of the vehicle 640, mayhold ride-service computing device 648, or handle ride-service computingdevice 648 in any other suitable manner. Although this disclosuredescribes providing a particular computing device in a particularmanner, this disclosure contemplates providing any suitable computingdevice in any suitable manner.

FIG. 7 illustrates an example computer system 700. In particularembodiments, one or more computer systems 700 perform one or more stepsof one or more methods described or illustrated herein. In particularembodiments, one or more computer systems 700 provide thefunctionalities described or illustrated herein. In particularembodiments, software running on one or more computer systems 700performs one or more steps of one or more methods described orillustrated herein or provides the functionalities described orillustrated herein. Particular embodiments include one or more portionsof one or more computer systems 700. Herein, a reference to a computersystem may encompass a computing device, and vice versa, whereappropriate. Moreover, a reference to a computer system may encompassone or more computer systems, where appropriate.

This disclosure contemplates any suitable number of computer systems700. This disclosure contemplates computer system 700 taking anysuitable physical form. As example and not by way of limitation,computer system 700 may be an embedded computer system, a system-on-chip(SOC), a single-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, a tablet computer system, anaugmented/virtual reality device, or a combination of two or more ofthese. Where appropriate, computer system 700 may include one or morecomputer systems 700; be unitary or distributed; span multiplelocations; span multiple machines; span multiple data centers; or residein a cloud, which may include one or more cloud components in one ormore networks. Where appropriate, one or more computer systems 700 mayperform without substantial spatial or temporal limitation one or moresteps of one or more methods described or illustrated herein. As anexample and not by way of limitation, one or more computer systems 700may perform in real time or in batch mode one or more steps of one ormore methods described or illustrated herein. One or more computersystems 700 may perform at different times or at different locations oneor more steps of one or more methods described or illustrated herein,where appropriate.

In particular embodiments, computer system 700 includes a processor 702,memory 704, storage 706, an input/output (I/O) interface 708, acommunication interface 710, and a bus 712. Although this disclosuredescribes and illustrates a particular computer system having aparticular number of particular components in a particular arrangement,this disclosure contemplates any suitable computer system having anysuitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor 702 includes hardware for executinginstructions, such as those making up a computer program. As an exampleand not by way of limitation, to execute instructions, processor 702 mayretrieve (or fetch) the instructions from an internal register, aninternal cache, memory 704, or storage 706; decode and execute them; andthen write one or more results to an internal register, an internalcache, memory 704, or storage 706. In particular embodiments, processor702 may include one or more internal caches for data, instructions, oraddresses. This disclosure contemplates processor 702 including anysuitable number of any suitable internal caches, where appropriate. Asan example and not by way of limitation, processor 702 may include oneor more instruction caches, one or more data caches, and one or moretranslation lookaside buffers (TLBs). Instructions in the instructioncaches may be copies of instructions in memory 704 or storage 706, andthe instruction caches may speed up retrieval of those instructions byprocessor 702. Data in the data caches may be copies of data in memory704 or storage 706 that are to be operated on by computer instructions;the results of previous instructions executed by processor 702 that areaccessible to subsequent instructions or for writing to memory 704 orstorage 706; or any other suitable data. The data caches may speed upread or write operations by processor 702. The TLBs may speed upvirtual-address translation for processor 702. In particularembodiments, processor 702 may include one or more internal registersfor data, instructions, or addresses. This disclosure contemplatesprocessor 702 including any suitable number of any suitable internalregisters, where appropriate. Where appropriate, processor 702 mayinclude one or more arithmetic logic units (ALUs), be a multi-coreprocessor, or include one or more processors 702. Although thisdisclosure describes and illustrates a particular processor, thisdisclosure contemplates any suitable processor.

In particular embodiments, memory 704 includes main memory for storinginstructions for processor 702 to execute or data for processor 702 tooperate on. As an example and not by way of limitation, computer system700 may load instructions from storage 706 or another source (such asanother computer system 700) to memory 704. Processor 702 may then loadthe instructions from memory 704 to an internal register or internalcache. To execute the instructions, processor 702 may retrieve theinstructions from the internal register or internal cache and decodethem. During or after execution of the instructions, processor 702 maywrite one or more results (which may be intermediate or final results)to the internal register or internal cache. Processor 702 may then writeone or more of those results to memory 704. In particular embodiments,processor 702 executes only instructions in one or more internalregisters or internal caches or in memory 704 (as opposed to storage 706or elsewhere) and operates only on data in one or more internalregisters or internal caches or in memory 704 (as opposed to storage 706or elsewhere). One or more memory buses (which may each include anaddress bus and a data bus) may couple processor 702 to memory 704. Bus712 may include one or more memory buses, as described in further detailbelow. In particular embodiments, one or more memory management units(MMUs) reside between processor 702 and memory 704 and facilitateaccesses to memory 704 requested by processor 702. In particularembodiments, memory 704 includes random access memory (RAM). This RAMmay be volatile memory, where appropriate. Where appropriate, this RAMmay be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, whereappropriate, this RAM may be single-ported or multi-ported RAM. Thisdisclosure contemplates any suitable RAM. Memory 704 may include one ormore memories 704, where appropriate. Although this disclosure describesand illustrates particular memory, this disclosure contemplates anysuitable memory.

In particular embodiments, storage 706 includes mass storage for data orinstructions. As an example and not by way of limitation, storage 706may include a hard disk drive (HDD), a floppy disk drive, flash memory,an optical disc, a magneto-optical disc, magnetic tape, or a UniversalSerial Bus (USB) drive or a combination of two or more of these. Storage706 may include removable or non-removable (or fixed) media, whereappropriate. Storage 706 may be internal or external to computer system700, where appropriate. In particular embodiments, storage 706 isnon-volatile, solid-state memory. In particular embodiments, storage 706includes read-only memory (ROM). Where appropriate, this ROM may bemask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM),electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM),or flash memory or a combination of two or more of these. Thisdisclosure contemplates mass storage 706 taking any suitable physicalform. Storage 706 may include one or more storage control unitsfacilitating communication between processor 702 and storage 706, whereappropriate. Where appropriate, storage 706 may include one or morestorages 706. Although this disclosure describes and illustratesparticular storage, this disclosure contemplates any suitable storage.

In particular embodiments, I/O interface 708 includes hardware orsoftware, or both, providing one or more interfaces for communicationbetween computer system 700 and one or more I/O devices. Computer system700 may include one or more of these I/O devices, where appropriate. Oneor more of these I/O devices may enable communication between a personand computer system 700. As an example and not by way of limitation, anI/O device may include a keyboard, keypad, microphone, monitor, mouse,printer, scanner, speaker, still camera, stylus, tablet, touch screen,trackball, video camera, another suitable I/O device or a combination oftwo or more of these. An I/O device may include one or more sensors.This disclosure contemplates any suitable I/O devices and any suitableI/O interfaces 708 for them. Where appropriate, I/O interface 708 mayinclude one or more device or software drivers enabling processor 702 todrive one or more of these I/O devices. I/O interface 708 may includeone or more I/O interfaces 708, where appropriate. Although thisdisclosure describes and illustrates a particular I/O interface, thisdisclosure contemplates any suitable I/O interface.

In particular embodiments, communication interface 710 includes hardwareor software, or both providing one or more interfaces for communication(such as, for example, packet-based communication) between computersystem 700 and one or more other computer systems 700 or one or morenetworks. As an example and not by way of limitation, communicationinterface 710 may include a network interface controller (NIC) ornetwork adapter for communicating with an Ethernet or any otherwire-based network or a wireless NIC (WNIC) or wireless adapter forcommunicating with a wireless network, such as a WI-FI network. Thisdisclosure contemplates any suitable network and any suitablecommunication interface 710 for it. As an example and not by way oflimitation, computer system 700 may communicate with an ad hoc network,a personal area network (PAN), a local area network (LAN), a wide areanetwork (WAN), a metropolitan area network (MAN), or one or moreportions of the Internet or a combination of two or more of these. Oneor more portions of one or more of these networks may be wired orwireless. As an example, computer system 700 may communicate with awireless PAN (WPAN) (such as, for example, a Bluetooth WPAN), a WI-FInetwork, a WI-MAX network, a cellular telephone network (such as, forexample, a Global System for Mobile Communications (GSM) network), orany other suitable wireless network or a combination of two or more ofthese. Computer system 700 may include any suitable communicationinterface 710 for any of these networks, where appropriate.Communication interface 710 may include one or more communicationinterfaces 710, where appropriate. Although this disclosure describesand illustrates a particular communication interface, this disclosurecontemplates any suitable communication interface.

In particular embodiments, bus 712 includes hardware or software, orboth coupling components of computer system 700 to each other. As anexample and not by way of limitation, bus 712 may include an AcceleratedGraphics Port (AGP) or any other graphics bus, an Enhanced IndustryStandard Architecture (EISA) bus, a front-side bus (FSB), aHYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture(ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, amemory bus, a Micro Channel Architecture (MCA) bus, a PeripheralComponent Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a serialadvanced technology attachment (SATA) bus, a Video Electronics StandardsAssociation local (VLB) bus, or another suitable bus or a combination oftwo or more of these. Bus 712 may include one or more buses 712, whereappropriate. Although this disclosure describes and illustrates aparticular bus, this disclosure contemplates any suitable bus orinterconnect.

Herein, a computer-readable non-transitory storage medium or media mayinclude one or more semiconductor-based or other types of integratedcircuits (ICs) (such, as for example, field-programmable gate arrays(FPGAs) or application-specific ICs (ASICs)), hard disk drives (HDDs),hybrid hard drives (HHDs), optical discs, optical disc drives (ODDs),magneto-optical discs, magneto-optical drives, floppy diskettes, floppydisk drives (FDDs), magnetic tapes, solid-state drives (SSDs),RAM-drives, SECURE DIGITAL cards or drives, any other suitablecomputer-readable non-transitory storage media, or any suitablecombination of two or more of these, where appropriate. Acomputer-readable non-transitory storage medium may be volatile,non-volatile, or a combination of volatile and non-volatile, whereappropriate.

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A or B, or both,” unless expressly indicated otherwise orindicated otherwise by context. Moreover, “and” is both joint andseveral, unless expressly indicated otherwise or indicated otherwise bycontext. Therefore, herein, “A and B” means “A and B, jointly orseverally,” unless expressly indicated otherwise or indicated otherwiseby context.

Methods described herein may vary in accordance with the presentdisclosure. Various embodiments of this disclosure may repeat one ormore steps of the methods described herein, where appropriate. Althoughthis disclosure describes and illustrates particular steps of certainmethods as occurring in a particular order, this disclosure contemplatesany suitable steps of the methods occurring in any suitable order or inany combination which may include all, some, or none of the steps of themethods. Furthermore, although this disclosure may describe andillustrate particular components, devices, or systems carrying outparticular steps of a method, this disclosure contemplates any suitablecombination of any suitable components, devices, or systems carrying outany suitable steps of the method.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, modules,elements, feature, functions, operations, or steps, any of theseembodiments may include any combination or permutation of any of thecomponents, modules, elements, features, functions, operations, or stepsdescribed or illustrated anywhere herein that a person having ordinaryskill in the art would comprehend. Furthermore, reference in theappended claims to an apparatus or system or a component of an apparatusor system being adapted to, arranged to, capable of, configured to,enabled to, operable to, or operative to perform a particular functionencompasses that apparatus, system, component, whether or not it or thatparticular function is activated, turned on, or unlocked, as long asthat apparatus, system, or component is so adapted, arranged, capable,configured, enabled, operable, or operative. Additionally, although thisdisclosure describes or illustrates particular embodiments as providingparticular advantages, particular embodiments may provide none, some, orall of these advantages.

What is claimed is:
 1. A computer-implemented method comprising:accessing, by a computing system, a set of schema-based encodingsassociated with an environment, wherein a schema-based encoding providesa structured representation of the environment at a point in time basedon a scenario schema, wherein the schema-based encoding is generatedbased on sensor data captured by at least one sensor of a vehicle whilenavigating the environment at the point in time; generating, by thecomputing system, information representing scenario informationassociated with the environment based at least in part on the set ofschema-based encodings; determining, by the computing system, one ormore attributes associated with the environment based at least in parton the generated information; and determining, by the computing system,instructions for navigating one or more vehicles in the environmentbased at least in part on the one or more attributes determined from thegenerated information that represents the scenario informationassociated with the environment, wherein the instructions modifyoperations associated with the one or more vehicles while navigating theenvironment.
 2. The computer-implemented method of claim 1, whereindetermining the one or more attributes further comprises: determining,by the computing system, a level of difficulty associated with the oneor more vehicles navigating the environment.
 3. The computer-implementedmethod of claim 1, wherein determining the one or more attributesfurther comprises: determining, by the computing system, a level of riskassociated with the one or more vehicles navigating the environment. 4.The computer-implemented method of claim 1, wherein determining the oneor more attributes further comprises: determining, by the computingsystem, routing instructions associated with the environment, therouting instructions providing instructions for routing the one or morevehicles in the first environment; determining, by the computing system,a level of similarity between the environment and a second environment;and associating, by the computing system, the routing instructions withthe second environment based at least in part on a threshold level ofsimilarity between the environment and the second environment.
 5. Thecomputer-implemented method of claim 1, wherein the environmentcorresponds to one of: a road segment, a geographic location, ageographic region, or a city.
 6. The computer-implemented method ofclaim 1, wherein the information corresponds to a histogram representingscenario information associated with the environment.
 7. Thecomputer-implemented method of claim 1, wherein the scenario informationincludes information identifying one or more families of scenarios. 8.The computer-implemented method of claim 1, wherein the scenarioinformation includes information identifying one or more individualscenarios.
 9. The computer-implemented method of claim 1, wherein aschema-based encoding of an environment for a period of time identifiesone or more agents that were detected by a vehicle within theenvironment during the period of time, respective motion information foreach of the one or more agents, information indicating whether an agentmay potentially interact with the vehicle during the period of time, andmetadata describing the environment.
 10. A system comprising: at leastone processor; and a memory storing instructions that, when executed bythe at least one processor, cause the system to perform: accessing a setof schema-based encodings associated with an environment, wherein aschema-based encoding provides a structured representation of theenvironment at a point in time based on a scenario schema, wherein theschema-based encoding is generated based on sensor data captured by atleast one sensor of a vehicle while navigating the environment at thepoint in time; generating information representing scenario informationassociated with the environment based at least in part on the set ofschema-based encodings; determining one or more attributes associatedwith the environment based at least in part on the generatedinformation; and determining instructions for navigating one or morevehicles in the environment based at least in part on the one or moreattributes determined from the generated information that represents thescenario information associated with the environment, wherein theinstructions modify operations associated with the one or more vehicleswhile navigating the environment.
 11. The system of claim 10, whereindetermining the one or more attributes further causes the system toperform: determining a level of difficulty associated with the one ormore vehicles navigating the environment.
 12. The system of claim 10,wherein determining the one or more attributes further causes the systemto perform: determining a level of risk associated with the one or morevehicles navigating the environment.
 13. The system of claim 10, whereindetermining the one or more attributes further causes the system toperform: determining routing instructions associated with theenvironment, the routing instructions providing instructions for routingthe one or more vehicles in the environment; determining a level ofsimilarity between the environment and a second environment; andassociating the routing instructions with the second environment basedat least in part on a threshold level of similarity between theenvironment and the second environment.
 14. A non-transitorycomputer-readable storage medium including instructions that, whenexecuted by at least one processor of a computing system, cause thecomputing system to perform: accessing a set of schema-based encodingsassociated with an environment, wherein a schema-based encoding providesa structured representation of the environment at a point in time basedon a scenario schema, wherein the schema-based encoding is generatedbased on sensor data captured by at least one sensor of a vehicle whilenavigating the environment at the point in time; generating informationrepresenting scenario information associated with the environment basedat least in part on the set of schema-based encodings; determining oneor more attributes associated with the environment based at least inpart on the generated information; and determining instructions fornavigating one or more vehicles in the environment based at least inpart on the one or more attributes determined from the generatedinformation that represents the scenario information associated with theenvironment, wherein the instructions modify operations associated withthe one or more vehicles while navigating the environment.
 15. Thenon-transitory computer-readable storage medium of claim 14, whereindetermining the one or more attributes further causes the system toperform: determining a level of difficulty associated with the one ormore vehicles navigating the environment.
 16. The non-transitorycomputer-readable storage medium of claim 14, wherein determining theone or more attributes further causes the system to perform: determininga level of risk associated with the one or more vehicles navigating theenvironment.
 17. The non-transitory computer-readable storage medium ofclaim 14, wherein determining the one or more attributes further causesthe system to perform: determining routing instructions associated withthe environment, the routing instructions providing instructions forrouting the one or more vehicles in the environment; determining a levelof similarity between the environment and a second environment; andassociating the routing instructions with the second environment basedat least in part on a threshold level of similarity between theenvironment and the second environment.